package com.yourenbang.lingyun.transaction.web.domain.po.klks;

import com.alibaba.fastjson.annotation.JSONField;
import com.yourenbang.lingyun.core.util.json.ToJSON;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 通道商户
 */
@Data
public class PayMerchantPO implements Serializable, ToJSON {

    /**
     * 状态：0初始
     */
    public static final String STATUS_INIT = "0";
    /**
     * 状态：1认证通过
     */
    public static final String STATUS_OPEN = "1";
    /**
     * 状态：2认证失败
     */
    public static final String STATUS_FAIL = "2";

    /**
     * D0标识：0初始
     */
    public static final String D0_STATUS_INIT = "0";
    /**
     * D0标识：1开通d0中
     */
    public static final String D0_STATUS_ING = "1";
    /**
     * D0标识：2开通成功
     */
    public static final String D0_STATUS_SUCC = "2";
    /**
     * D0标识：3开通失败
     */
    public static final String D0_STATUS_FAIL = "3";

    private String id;
    /**
     * 商户名称
     */
    private String merName;
    /**
     * 用户id
     */
    private String userId;
    /**
     * 商户真实名称
     */
    private String realName;
    /**
     * 商户身份证号
     */
    private String idCard;
    /**
     * 开户行
     */
    private String openBank;
    /**
     * 商户开通地址
     */
    private String openBankAddress;
    /**
     * 结算卡卡号
     */
    private String bankCard;
    /**
     * 借记卡费率
     */
    private Integer rateBorrow;
    /**
     * 贷记卡费率
     */
    private Integer rateCredit;

    private String rateFixedFlag;           //费率是否固定（1:是 0:否）
    /**
     * 商户手机号码
     */
    private String phone;
    /**
     * 商户邮箱
     */
    private String email;
    /**
     * 协议地址
     */
    private String protocolUrl;
    /**
     * 状态（0初始 1认证通过）
     */
    private String status;
    /**
     * D0标识0：初始 1：开通d0中  2：开通成功  3开通失败
     */
    private String d0Flag;
    /**
     * 拉卡拉商户号
     */
    private String merNo;
    /**
     * 进件订单号
     */
    private String contractOrderNo;
    /**
     * 进件编号
     */
    private String contractId;
    /**
     * 虚拟手机号
     */
    private String fictitiousMobile;
    /**
     * 终端号   53477545-81|543866-21     81为策略收单卡应用终端号
     */
    private String termId;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
     * 详细地址
     */
    private String location;
    /**
     * 成功进件时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime activeTime;
    /**
     * 省编号   (产品类型为 01:百度区域码  03、05:拉卡拉区域码)
     */
    private String provinceCode;
    /**
     * 市编号   (产品类型为 01:百度区域码  03、05:拉卡拉区域码)
     */
    private String cityCode;
    /**
     * 区、县编号   (产品类型为 01:百度区域码  03、05:拉卡拉区域码)
     */
    private String districtCode;
    private String productType;
    /**
     * 上传附件标识 0：未上传 1：已上传
     */
    private String uploadFlag;
    /**
     * 变更银行卡标识 0：正在变更 1：变更完成 (废弃)
     */
    private String updateCardFlag;
    /**
     * 开户行号
     */
    private String openBankNo;
    /**
     * 考核开始时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime assessBeginTime;
    /**
     * 是否返现标识
     */
    private String bountyFlag;
    /**
     * 历史进件编号
     */
    private String contractIds;
    /**
     * 优质商户认证标识
     */
    private String merAuthFlag;
    /**
     * 激活码
     */
    private String activationCodes;
    /**
     * 优惠费率开始时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime discountsRateBeginTime;
    /**
     * 优惠费率结束时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime discountsRateEndTime;
    /**
     * 优惠费率过期标识 0:未过期 1:已过期
     */
    private String discountsRatePastFlag;
    /**
     * 备注
     */
    private String remarks;
    /**
     * 开通中缓存时间，同步至凌云缓存
     */
    private Integer openMerIngExpir;
    /**
     * 关停状态
     */
    private Short closeStatus;
    /**
     * 补录状态
     */
    private Short supplementStatus;
    private String supplementFailReason;
    /**
     * mcc编码
     */
    private String mccCode;
}
